Il arrive très souvent que l'analyse du mauvais fonctionnement d'une application nécessite un compréhension approfondie des librairies utilisées. Ce n'est pas un problème dans le cas des librairies OpenSource puisque par définition le code source est accessible.
Mais les projets uniquement basés sur des produits libres sont encore rares. Heureusement, la définition du bytecode java est suffisamment accessible pour rendre possible l'écriture de décompilateurs.
Contrairement aux autres languages, la décompilation ne s'arrête pas à l'assembleur, mais permet de remonter jusqu'au code source, sans les commentaires :-). Il est courant que le code décompilé soit plus lisible que le code source d'origine.
Le décompilateur le plus puissant à ce jour est certainement
jad
, disponible à l'adresse :
http://www.kpdus.com/jad.html.
Ce serveur étant souvent indisponible, vous pouvez aussi
essayer jadnt158.zip.
Note : l'utilisation de jad est gratuite pour un usage non commercial. Pour tout autre usage, contacter l'auteur à l'adresse kpdus@softhome.net
Son utilisation est très simple, pour décompiler la classe Example1 dans le fichier Example1.java, lancer :
jad -sjava Example1.classPour décompiler une arborescence de classes, utiliser :
jad.exe -o -r -sjava -dsrc ./**/*.class